package com.example.controller;


import com.example.pojo.Dept;
import com.example.pojo.Emp;
import com.example.pojo.PagBean;
import com.example.pojo.Result;
import com.example.service.EmpService;
import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Select;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.*;

import java.time.LocalDate;
import java.util.ArrayList;

/*
 * 员工管理Contrller
 * */
@Slf4j
@RestController
public class  EmpController {

    @Autowired
    private EmpService empService;

    //带条件的分页查询
    @GetMapping("/emps")
    public Result page(@RequestParam (defaultValue = "1") Integer page, //注释默认值为1
                       @RequestParam (defaultValue =  "10")  Integer pageSize,
                       String name, Short gender,
                       //日期年小写 MM大写 dd小写
                       //@DateTimeFormat 将 HTTP 请求中的日期字符串转换成 Java 中的 Date 对象
                       @DateTimeFormat(pattern = "yyyy-MM-dd")LocalDate begin,
                       @DateTimeFormat(pattern = "yyyy-MM-dd")LocalDate end
                       ){
        log.info("分页查询 每页查询页码：{} 每页{}条",page,pageSize,name,gender,begin,end);
        // 返回给前端是一个PagBean类 类里面是总数和list类型的查询到的数据
        PagBean pagBean = empService.page(page,pageSize,name,gender,begin,end);
        return Result.success(pagBean);

    }

    //批量删除
    @DeleteMapping("/emps/{list2}")
    public Result deletes(@PathVariable ArrayList<Integer> list2 ){
        log.info("批量删除的id为：{}",list2);
        empService.deletes(list2);
        return Result.success();
    }

    //新增员工
    @PostMapping("/emps")
    public Result inset(@RequestBody Emp emp){
        log.info("新增员工：{}",emp);
        empService.inset(emp);
        return Result.success();

    }

    //根据员工id查询
    @GetMapping("/emps/{id}") //路径参数
    public Result seleteid(@PathVariable Integer id){
        log.info("根据id查询员工：{}",id);
        Emp emp= empService.deleteid(id);
        return Result.success(emp);
    }

    //修改员工
    @PutMapping("/emps") //json格式
    public  Result update(@RequestBody Emp emp){
        log.info("传入的参数：{}",emp);
        empService.update(emp);
        return Result.success();

    }




}
